home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 8.0 KB | 266 lines | [TEXT/MPS ] |
- /*
- File: SCSI.idl
-
- Contains: SCSI Family Interfaces.
-
- Version: Technology: System 8.0
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __SCSI_IDL__
- #define __SCSI_IDL__
-
- #include <somobj.idl>
- #include <somcls.idl>
-
- #ifndef __TYPES_IDL__
- #include <Types.idl>
- #endif
- #ifndef __MIXEDMODE_IDL__
- #include <MixedMode.idl>
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- #ifndef __KERNEL_IDL__
- #include <Kernel.idl>
- #endif
- #ifndef __NAMEREGISTRY_IDL__
- #include <NameRegistry.idl>
- #endif
- #ifndef __IOITERATOR_IDL__
- #include <IOIterator.idl>
- #endif
- #endif
-
- #ifdef __SOMIDL__
-
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- /* SCSI Manager errors */
- #endif
- #if FOR_SYSTEM7_ONLY
- /* TIB opcodes */
- /* Signatures */
- /* Driver Descriptor Map */
- typedef SOMLargeStruct Block0; /* Derived from a struct of 512 bytes in size */
-
- /*Driver descriptor*/
- typedef SOMLargeStruct DDMap; /* Derived from a struct of 8 bytes in size */
-
- /* Partition Map Entry */
- typedef SOMLargeStruct Partition; /* Derived from a struct of 512 bytes in size */
-
- /* TIB instruction */
- typedef SOMLargeStruct SCSIInstr; /* Derived from a struct of 10 bytes in size */
-
- /* SCSI Phases (used by SIMs to support the Original SCSI Manager */
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- /* SCSI Callback Procedure Prototypes */
- typedef OpaquePtr AENCallbackProcPtr;
- typedef OpaquePtr AENCallbackUPP;
- typedef OpaquePtr SIMInitProcPtr;
- typedef OpaquePtr SIMInitUPP;
- typedef OpaquePtr SIMActionProcPtr;
- typedef OpaquePtr SIMActionUPP;
- typedef OpaquePtr SCSIProcPtr;
- typedef OpaquePtr SCSIUPP;
- typedef OpaquePtr SCSIMakeCallbackProcPtr;
- typedef OpaquePtr SCSIMakeCallbackUPP;
- /* SCSIInterruptPollProcPtr is obsolete (use SCSIInterruptProcPtr) but still here for compatibility */
- typedef OpaquePtr SCSIInterruptPollProcPtr;
- typedef OpaquePtr SCSIInterruptPollUPP;
- typedef OpaquePtr SCSIInterruptProcPtr;
- typedef OpaquePtr SCSIInterruptUPP;
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- typedef OpaquePtr SCSICallbackProcPtr;
- typedef OpaquePtr SCSICallbackUPP;
- #endif
- #if FOR_SYSTEM7_ONLY
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- /* SCSI Manager function codes */
- /* Define DeviceIdent structure */
- typedef SOMFourByteStruct DeviceIdent; /* Derived from a struct of 4 bytes in size */
-
- /*
- #endif // FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- */
- /* Allocation length defines for some of the fields */
- typedef OpaquePtr SCSIDataPtr; /* Substituted OpaquePtr for “octet*” */
-
- /* Command Descriptor Block structure */
- typedef SOMLargeStruct CDB; /* Derived from a struct of 20 bytes in size */
-
- typedef OpaquePtr CDBPtr; /* Substituted OpaquePtr for “CDB*” */
-
- /* Scatter/gather list element */
- typedef SOMLargeStruct SGRecord; /* Derived from a struct of 8 bytes in size */
-
- /*
- #endif // FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- */
- typedef SOMLargeStruct SCSIHdr; /* Derived from a struct of 36 bytes in size */
-
- typedef SOMLargeStruct SCSI_PB; /* Derived from a struct of 36 bytes in size */
-
- /*
- #endif // FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- This is temporary until we have connection protocol ready.
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- */
- typedef SOMLargeStruct SCSI_IO; /* Derived from a struct of 176 bytes in size */
-
- typedef SCSI_IO SCSIExecIOPB;
-
- /* Bus inquiry PB */
- typedef SOMLargeStruct SCSIBusInquiryPB; /* Derived from a struct of 172 bytes in size */
-
- /* Abort SIM Request PB */
- typedef SOMLargeStruct SCSIAbortCommandPB; /* Derived from a struct of 40 bytes in size */
-
- /* Terminate I/O Process Request PB */
- typedef SOMLargeStruct SCSITerminateIOPB; /* Derived from a struct of 40 bytes in size */
-
- /* Reset SCSI Bus PB */
- typedef SOMLargeStruct SCSIResetBusPB; /* Derived from a struct of 36 bytes in size */
-
- /* Reset SCSI Device PB */
- typedef SOMLargeStruct SCSIResetDevicePB; /* Derived from a struct of 36 bytes in size */
-
- /* Release SIM Queue PB */
- typedef SOMLargeStruct SCSIReleaseQPB; /* Derived from a struct of 36 bytes in size */
-
- #endif
- #if FOR_SYSTEM7_ONLY
- /* SCSI Get Virtual ID Info PB */
- typedef SOMLargeStruct SCSIGetVirtualIDInfoPB; /* Derived from a struct of 40 bytes in size */
-
- /* Create/Lookup/Remove RefNum for Device PB */
- typedef SOMLargeStruct SCSIDriverPB; /* Derived from a struct of 44 bytes in size */
-
- /* Load Driver PB */
- typedef SOMLargeStruct SCSILoadDriverPB; /* Derived from a struct of 40 bytes in size */
-
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- /* Defines for the scsiTransferType field */
- /* New errors for SCSI Family */
- /* Defines for the scsiResultFlags field */
- /* Defines for the bit numbers of the scsiFlags field in the PB header for the SCSIExecIO function */
- /* Defines for the bit masks of the scsiFlags field */
- /* bit masks for the scsiIOFlags field in SCSIExecIOPB */
- /* Defines for the Bus Inquiry PB fields. */
- /* scsiHBAInquiry field bits */
- /* Defines for the scsiDataType field */
- /* scsiDataTypes field bits */
- /* bits 0->15 Apple-defined, 16->30 3rd-party unique, 31 = reserved */
- /* scsiScanFlags field bits */
- /* scsiFeatureFlags field bits */
- /* scsiWeirdStuff field bits */
- /* scsiHBAslotType values */
- #endif
- #if FOR_SYSTEM7_ONLY
- /* Defines for the scsiDriverFlags field (in SCSIDriverPB) */
- /* SCSI status*/
- /* SCSI messages*/
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- /* SIMInitInfo PB */
- /* directions are for SCSIRegisterBus call ( -> parm, <- result) */
- typedef SOMLargeStruct SIMInitInfo; /* Derived from a struct of 60 bytes in size */
-
- /* Glue between SCSI calls and SCSITrap format */
- /* moveq #kSCSIx, D0; _SCSIAtomic */
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- /*
- File: SCSIConn.h
-
- Contains: Connection Based parameter checking
-
- Version: 0.1
-
- Written by: Darryl Chan
-
- Copyright: © 1995-1996 by Apple Computer, Inc., all rights reserved.
-
- File Ownership:
-
- DRI: Darryl Chan
-
- Other Contact: Stanford Au
-
- Technology: IO Group
-
- Writers:
-
- (DC) Darryl Chan
-
- Change History (most recent first):
-
- <4> 1/25/96 DC Integrate to D11 - name registry changes
- <3> 1/18/96 DC Split file to public and private interfaces and converting to
- MrC.
- <2> 1/15/96 DC Add more commands
- <1> 1/3/96 DC First checked in.
-
- */
- typedef UInt32 ConnectionType;
-
- typedef ObjectID ConnectionID;
-
- typedef MessageID SCSIExecIOTag;
-
- /* values for 'type's of connection (UInt16)*/
- typedef SOMLargeStruct SCSIDataObject; /* Derived from a struct of 12 bytes in size */
-
- typedef SOMLargeStruct SCSICDBObject; /* Derived from a struct of 18 bytes in size */
-
- typedef SOMLargeStruct SCSIFlagsObject; /* Derived from a struct of 8 bytes in size */
-
- typedef SOMLargeStruct SCSIExecIOResult; /* Derived from a struct of 272 bytes in size */
-
- typedef SOMLargeStruct SCSIIOOptionsObject; /* Derived from a struct of 8 bytes in size */
-
- typedef SOMLargeStruct SCSIHandshakeObject; /* Derived from a struct of 16 bytes in size */
-
- typedef SOMLargeStruct SCSIBusInfo; /* Derived from a struct of 134 bytes in size */
-
- typedef OpaquePtr DeviceType; /* Substituted OpaquePtr for array of char of size 9 */
-
- /* this replaces SCSIDevList*/
- typedef SOMLargeStruct SCSIIOIteratorData; /* Derived from a struct of 33 bytes in size */
-
- /*
- _____________________________________________________________________
- Client type used to identify the type of client we are dealing
- with.
- _____________________________________________________________________
- */
- typedef UInt8 ClientType;
-
- /* for Client type*/
- /*
-
- New command to get Registry Entry ID for the SCSI Plugin
- */
- typedef SOMLargeStruct SCSIGetRegEntryIDPB; /* Derived from a struct of 52 bytes in size */
-
- /* Functions declarations*/
- #endif
-
- #endif /* __SOMIDL__ */
-
- #endif /* __SCSI_IDL__ */
-
-